home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / qmtp_detect.nasl < prev    next >
Text File  |  2005-03-31  |  3KB  |  111 lines

  1. #
  2. # This script was written by Michel Arboi <arboi@alussinan.org>
  3. #
  4. # GPL
  5. #
  6.  
  7.  
  8. if(description)
  9. {
  10.   script_id(11134);
  11.   script_version ("$Revision: 1.6 $");
  12.  
  13.   script_name(english:"QMTP");
  14.  
  15.   desc["english"] = "
  16. For your information, a QMTP/QMQP server is running on this port.
  17. QMTP is a proposed replacement of SMTP by D.J. Bernstein.
  18.  
  19. ** Note that Nessus only runs SMTP tests currently.
  20.  
  21. Risk factor : None";
  22.  
  23.   script_description(english:desc["english"]);
  24.  
  25.   summary["english"] = "Detect QMTP servers";
  26.   script_summary(english:summary["english"]);
  27.  
  28.   script_category(ACT_GATHER_INFO);
  29.  
  30.   script_copyright(english:"This script is Copyright (C) 2002 Michel Arboi");
  31.   script_family(english:"Service detection");
  32.   script_dependencie("find_service.nes", "find_service2.nasl");
  33.   script_require_ports(209, 628);
  34.  
  35.   exit(0);
  36. }
  37.  
  38. ####
  39.  
  40. include("global_settings.inc");
  41. include("misc_func.inc");
  42. include("network_func.inc");
  43.  
  44. ports = get_kb_list("Services/QMTP");
  45. if (! ports) ports = make_list(209, 628);
  46. ports = make_list(209, 628);
  47.  
  48. function netstr(str)
  49. {
  50.   local_var    l;
  51.  
  52.   l = strlen(str);
  53.   return strcat(l, ":", str, ",");
  54. }
  55.  
  56. foreach port (ports)
  57.   if (service_is_unknown(port: port) && get_port_state(port))
  58.   {
  59.     soc = open_sock_tcp(port);
  60.     if (soc)
  61.     {
  62.       msg = strcat(netstr(str: "
  63. Message-ID: <1234567890.666.nessus@example.org>
  64. From: nessus@example.org
  65. To: postmaster@example.com
  66.  
  67. Nessus is probing this server.
  68. "), 
  69.         netstr(str: "nessus@example.org"),
  70.         netstr(str: netstr(str: "postmaster@example.com")));
  71.       # QMQP encodes the whole message once more
  72.       if (port == 628)
  73.       {
  74.          msg = netstr(str: msg);
  75.          srv = "QMQP";
  76.       }
  77.       else
  78.         srv = "QMTP";
  79.  
  80. send(socket: soc, data: msg);
  81. r = recv(socket: soc, length: 1024);
  82. close(soc);
  83.  
  84. if (ereg(pattern: "^[1-9][0-9]*:[KZD]", string: r))
  85. {
  86.   security_note(port);
  87.   register_service(port: port, proto: srv);
  88. }
  89.  
  90.       if (ereg(pattern: "^[1-9][0-9]*:K", string: r))
  91.       {
  92.         # K: Message accepted for delivery
  93.         # Z: temporary failure
  94.         # D: permanent failure
  95.         if (is_private_addr(addr: get_host_ip()) ||
  96.             is_private_addr(addr: this_host()) )
  97.           security_warning(port: port, data: 
  98. "The " + srv + " server accepts relaying. 
  99. Make sure it rejects connections from Internet so that spammers cannot use
  100. it as an open relay");
  101.         else
  102.           security_hole(port: port, data: 
  103. "The "+ srv + " server accepts relaying on or from Internet. 
  104. Spammers can use it as an open relay.
  105.  
  106. Risk : High");
  107.       }
  108.  
  109.     }
  110.   }
  111.